US20060206348 A1 (D1) discloses an automated way for a non-technical person to create or modify software functionality in support of a business process without needing expertise in software. According to D1, an automated matching tool may apply user input expressed semantically to a database of semantic information associated with syntactic information, to match the user input with a service (e.g., an application program) capable of performing a business process step corresponding to the input. The matching tool is configured to perform matching between user information with services based on as association between semantic data and syntactic data.
The semantic persistent store 301 of D1 may comprise three kinds of semantic metadata: functionality metadata, service metadata, and instance descriptor metadata. Any of the three kinds of semantic data may be searched independently of the other two for matches with user input. In this connection, it should be understood that the functionality metadata, service metadata, and instance descriptor metadata do not necessarily overlap at all points. That is, each may contain information not present in the others
A subset of the semantic persistent store 301 of D1 may include functionality metadata. The functionality metadata may provide a semantic context for a service look-up, at various levels of specificity which may be hierarchically arranged.
Another subset of the semantic persistent store 301 may include service metadata. Where the functionality metadata may function as a relatively coarse, contextual mapping to the syntactic metadata, the service metadata may act as a more granular mapping to the syntactic metadata.
Services are often interdependent and need to communicate with each other, i.e., call each other and pass each other parameters and data. The service metadata may comprise technical specifics relating to such interdependence and communication. For example, in an object-oriented implementation of a service, the service metadata may define operations available in an interface of the service that can be called by another service.
One of common problems present within the state of the art is a difficulty to implement changes in a working system. Current methodologies allow to build modular and scalable systems, but are less effective when an unexpected, nonstandard change needs to be made.
Another problem with popular software is badly customizable user interaction. Even systems that are well designed and easy to use, do not learn to interact with users. Rather the users have to learn to use the system.
Most data centered systems can only store logs of changes made to selected parts of the database. No analysis can be done when changes have not been logged.
A common problem in relational database design is finding balance between data redundancy and performance. Usually minimizing redundancy results in a slower and more complicated system. Another problem present in the state of the art is model checking of complex system, in particular it is difficult to manage changes within such systems.